Purpose

It would be useful to develop a process for adding a Silicon Dioxide layer in between two niobium layers. This would allow us to easily make grounding straps to connect ground planes over CPWs, and would let us make Parallel Plate capacitors rather than interdigitated.

While we have a process do deposit the SiOx (PECVD with the Oxford at CNF), we do not have a process for etching that won't attack the Niobium ground layer. A standard dry (plasma) etch would etch the Niobium. However, some literature searches indicate that perhaps a buffered oxide etch (BOE) will not etch the Nb ground layer. This is a test of that process.

Fabrication

Experiment

Results


In [1]:
import ResonatorFit
from os import path, listdir, curdir
from numpy import pi, loadtxt
from bokeh.plotting import *


BokehJS successfully loaded.

Run 1

9/12/2015


In [2]:
dataPath = path.join(curdir, 'sioxEtchTest', 'Run1')
run1 = []
for f in listdir(dataPath):
    run1.append(ResonatorFit.analyze(path.join(dataPath, f)))


.\sioxEtchTest\Run1\Input 1 Resonator 250mK Etched.s2p
f0 = 4.908448 +/- 0.00000 (6.9e-05%) GHz
kappa = 2.1217E+07 +/- 4.4350E+04 (0.21%)
Q = 1.4536E+03 +/- 1.2090E-02 (0.00083%)
.\sioxEtchTest\Run1\Input 2 Resonator 250mK not Etched.s2p
f0 = 5.000996 +/- 0.00000 (3.3e-05%) GHz
kappa = 1.4925E+07 +/- 2.1496E+04 (0.14%)
Q = 2.1053E+03 +/- 1.2266E-02 (0.00058%)

In [4]:
dataPath = path.join(curdir, 'sioxEtchTest', 'Run1')

for f in listdir(dataPath):
    ResonatorFit.plotS21(path.join(dataPath, f))


.\sioxEtchTest\Run1\Input 1 Resonator 250mK Etched.s2p
.\sioxEtchTest\Run1\Input 2 Resonator 250mK not Etched.s2p

Run 2

9/28/2015


In [3]:
dataPath = path.join(curdir, 'sioxEtchTest', 'Run2')
run2=[]
for f in listdir(dataPath):
    run2.append(ResonatorFit.analyze(path.join(dataPath, f)))


.\sioxEtchTest\Run2\Input 1 Resonator 250mK.s2p
f0 = 5.005612 +/- 0.00001 (0.00015%) GHz
kappa = 1.5262E+07 +/- 9.7140E+04 (0.64%)
Q = 2.0608E+03 +/- 1.2257E-02 (0.00059%)
.\sioxEtchTest\Run2\Input 1 Resonator 3K.s2p
f0 = 4.998746 +/- 0.00001 (0.00029%) GHz
kappa = 1.9361E+07 +/- 1.8990E+05 (0.98%)
Q = 1.6222E+03 +/- 1.2141E-02 (0.00075%)
.\sioxEtchTest\Run2\Input 2 Resonator 250mK.s2p
f0 = 4.866986 +/- 0.00000 (1.7e-05%) GHz
kappa = 9.1396E+06 +/- 1.0553E+04 (0.12%)
Q = 3.3459E+03 +/- 1.2425E-02 (0.00037%)
.\sioxEtchTest\Run2\Input 2 Resonator 3K.s2p
f0 = 4.843382 +/- 0.00001 (0.00017%) GHz
kappa = 2.8772E+07 +/- 1.0721E+05 (0.37%)
Q = 1.0577E+03 +/- 1.1874E-02 (0.0011%)

Analysis


In [10]:
print('Filename | $f_0$ (GHz) | Q | $\kappa$ (MHz)')
print('----|-----|----')
for data in run1:
    print('{} | {:.3f} | {:.2e} | {:.3f}').format(data['filename'], data['f0']*1e-9, data['Q'], data['kappa']/(2*pi)*1e-6)
    
for data in run2:
    print('{} | {:.3f} | {:.2e} | {:.3f}').format(data['filename'], data['f0']*1e-9, data['Q'], data['kappa']/(2*pi)*1e-6)


Filename | $f_0$ (GHz) | Q | $\kappa$ (MHz)
----|-----|----
.\sioxEtchTest\Run1\Input 1 Resonator 250mK Etched.s2p | 4.908 | 1.45e+03 | 3.377
.\sioxEtchTest\Run1\Input 2 Resonator 250mK not Etched.s2p | 5.001 | 2.11e+03 | 2.375
.\sioxEtchTest\Run2\Input 1 Resonator 250mK.s2p | 5.006 | 2.06e+03 | 2.429
.\sioxEtchTest\Run2\Input 1 Resonator 3K.s2p | 4.999 | 1.62e+03 | 3.081
.\sioxEtchTest\Run2\Input 2 Resonator 250mK.s2p | 4.867 | 3.35e+03 | 1.455
.\sioxEtchTest\Run2\Input 2 Resonator 3K.s2p | 4.843 | 1.06e+03 | 4.579

Conclusion

Filename $f_0$ (GHz) Q $\kappa$ (MHz)
Run1 250mK Etched 4.908 1.45e+03 3.377
Run1 3K Etched 4.89 815 6 ($\delta f$)
Run1 250mK not Etched 5.001 2.11e+03 2.375
Run1 3K not Etched 4.99 1.66e+03 3 ($\delta f$)
Run2\Input 1 250mK 5.006 2.06e+03 2.429
Run2\Input 1 3K 4.999 1.62e+03 3.081
Run2\Input 2 250mK 4.867 3.35e+03 1.455
Run2\Input 2 3K 4.843 1.06e+03 4.579

In [3]:
4.99e9/3e6


Out[3]:
1663.3333333333333

In [3]:
Plot?

In [15]:
def plotS21Together(filepath, filenames, showPlot=True):

    fig = figure(
        x_axis_label="Frequency (GHz)",
        y_axis_label="|S21| (dBm)")
    
    colors = ['blue', 'orange', 'green', 'yellow']
    
    for i, filename in enumerate(filenames):
        x, y = loadtxt(path.join(filepath, filename), comments='!', skiprows=10, usecols=(0, 3), unpack=True)

        fig.circle(x*1e-9,y, legend = filename, color=colors[i], fill_color=None)
    if showPlot:
        show(fig)
    else:
        return fig,x,y

In [16]:
dataPath = path.join(curdir, 'sioxEtchTest', 'Run1')
plotS21Together(dataPath, listdir(dataPath))



In [17]:
dataPath = path.join(curdir, 'sioxEtchTest', 'Run2')
plotS21Together(dataPath, listdir(dataPath))



In [ ]: